package servlet;

import java.io.IOException;
import java.util.Arrays;
import java.util.Objects;
import java.util.Optional;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import demo.Users;


@WebServlet("/Init")
public class Init extends HttpServlet {
	private static final long serialVersionUID = 1L;

    /**
     * Default constructor. 
     */
    public Init() {
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String name=request.getParameter("userName");
	         
		Cookie cookie = new Cookie("user",name);
		         
		 cookie.setMaxAge(360*24*60);//设置一年有效期
		         
		 cookie.setPath("/");//可在同一应用服务器内共享方法
		         
		 response.addCookie(cookie);//放松到客户段
		         //凭这个Cookie就自动登录并不安全可以在服务端使用一个Session来管理用户。
		         //当第一次登录成功后，就创建一个Session，并将用户的某些信息保存在Session
		         
		 HttpSession session = request.getSession();      
		 session.setAttribute("user", name);
		 session.setMaxInactiveInterval(60*5);//5分钟
		 //但是当cookie关闭后，用于保存SessionID的JSESSIONID会消失(此时cookie并没有过期) ，所以得将JSESESSION持久化
		 Cookie sessionId = new Cookie("JSESESSIONID",session.getId());
		 sessionId.setMaxAge(5);//设置5分钟
		 sessionId.setPath("/");
		 response.addCookie(sessionId);
		         
		         
		         
		         //当用户第二次登陆时，检测这个cookie是否存在
		      
		 Cookie[] cookies = request.getCookies();
		 
		 for (Cookie cookie2 : cookies) {
		 
			 //如果存在这个cookie进行页面跳转
		     
			 if(cookie2.equals("user")){
		     
				 if(session.getAttribute("user")!=null){
		         
						response.getWriter().append("添加成功").
						 append("<script>window.location.href='www.baidu.com';</script>");

					 break;
		             
				 }else{
					 request.getRequestDispatcher("views/main.jsp").forward(request, response);
				 }   
			 }	     
		 }
	}
/*
		String password=request.getParameter("password");
		Users user=new Users();

		 String userInfo = user.toString();
		 if(null!=name && !"".equals(name)){             
			 user.setName(name);
		 }
		 if(null!=password && !"".equals(password)){            
			 user.setPassword(password);
		 }
		         
		 Cookie cookie = new Cookie("user",userInfo);
		         
		 cookie.setMaxAge(360*24*60);//设置一年有效期
		         
		 cookie.setPath("/");//可在同一应用服务器内共享方法
		         
		 response.addCookie(cookie);//放松到客户段
		         //凭这个Cookie就自动登录并不安全可以在服务端使用一个Session来管理用户。
		         //当第一次登录成功后，就创建一个Session，并将用户的某些信息保存在Session
		         
		 HttpSession session = request.getSession();      
		 session.setAttribute("user", userInfo);
		 session.setMaxInactiveInterval(60*5);//5分钟
		 //但是当cookie关闭后，用于保存SessionID的JSESSIONID会消失(此时cookie并没有过期) ，所以得将JSESESSION持久化
		 Cookie sessionId = new Cookie("JSESESSIONID",session.getId());
		 sessionId.setMaxAge(5);//设置5分钟
		 sessionId.setPath("/");
		 response.addCookie(sessionId);
		         
		         
		         
		         //当用户第二次登陆时，检测这个cookie是否存在
		      
		 Cookie[] cookies = request.getCookies();
		 
		 for (Cookie cookie2 : cookies) {
		 
			 //如果存在这个cookie进行页面跳转
		     
			 if(cookie2.equals("user")){
		     
				 if(session.getAttribute("user")!=null){
		         
						response.getWriter().append("添加成功").
						 append("<script>window.location.href='www.baidu.com';</script>");

					 break;
		             
				 }else{
					 request.getRequestDispatcher("views/main.jsp").forward(request, response);
				 }   
			 }	     
		 }
	}
	*/
	/*
	if(flag) {
				request.getRequestDispatcher("views/main.jsp").forward(request, response);
			}else {
				request.getRequestDispatcher("login.jsp").forward(request, response);
			}
		}

		*/
	
	/*
			for(int i=0;i<cookies.length;i++) {
				if(Objects.equals(cookies[i].getValue(),"login.jsp")) {
					flag=true;
					break;
				}//session是jsp的内置对象，cookies不是。
				//session存储在服务器内存中，cookies存储在用户硬盘上
				//session是以对象的形式存在的，一个用户对应一个独立的session,cookies是以文件的形式存在，一个cookies只能存一个键值对
				//区分session的重要属性sessionId一般储存在cookies
				//session默认时长30分钟，cookies的时长可以自己控制
			}
		}
		if(flag) {
		response.getWriter().append("xxxxx").
		 append("<script>window.location.href='text.jsp';</script>");
		}else {
			response.getWriter().append("<p>"+sessionId+"</p>").
			append("<script>window.location.href='login.jsp';</script>");
			
		}
		*/
		
	

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}
